package com.hakim.wfb.customer.util;

/**
 * 关于坐标、距离的工具类
 * Created by zhile on 2017/3/13 0013.
 */
public class LocationUtil {

    private static final Double PI = Math.PI;

    private static final Double PK = 180 / PI;

    /**
     * 获取两个经纬度之间的距离（单位：米）
     */
    public static Double getDistanceFromTwoPoints(Double lat_a, Double lng_a, Double lat_b, Double lng_b) {
        Double distance = null;
        if (lat_a != null && lng_a != null && lat_b != null && lng_b != null) {
            if (lat_a == lat_b && lng_a == lng_b) {
                return 0.0d;
            }
            double t1 = Math.cos(lat_a / PK) * Math.cos(lng_a / PK) * Math.cos(lat_b / PK) * Math.cos(lng_b / PK);
            double t2 = Math.cos(lat_a / PK) * Math.sin(lng_a / PK) * Math.cos(lat_b / PK) * Math.sin(lng_b / PK);
            double t3 = Math.sin(lat_a / PK) * Math.sin(lat_b / PK);

            double tt = Math.acos(t1 + t2 + t3);
            distance = 6366000 * tt;
        }
        return distance;
    }
}
